System, method and computer readable medium for placing advertisements into web pages

ABSTRACT

Selection of web page advertisements for placement into a web page may use attention data that ranks the elements of the web page according to the attention the elements receive from users during interactions with the web page. The content of ads can be matched to the content of the most highly ranked elements of the web page rather than the web page as a whole. Alternatively, ads can be selected that historically produce a preferred pattern of behavior such as an attention shift from a highly ranked element of the web page to the ad.

FIELD OF THE INVENTION

This disclosure relates to a system, method and computer readable mediumfor placing advertisements into web pages.

BACKGROUND OF THE INVENTION

The performance or effectiveness of ads dynamically placed within a webpage is typically measured using clickstream data. In a performancebased method, when a user clicks on an ad, a URL resource for the ad webpage is fetched and loaded into the client browser. Simultaneously, astatistic is updated to increase the relevance of that ad within thecontext, i.e. within the original web page. An alternative, contentmatching solution for measuring ad effectiveness uses keywords. A userwishing to place an ad enters keywords or keywords are extracted from anad's text and used to perform relevance matching to the words within aweb page. Both performance based and content matching methods may becombined to select ads that are relevant to the content and that haveperformed statistically well in similar contexts.

A problem with these existing methods is that they rely on click streamdata which is typically coarse grained. A further problem is that thesesolutions tend to treat all words within the web page substantially thesame, regardless of where in the web page the content appears.

What is required is a system, method and computer readable medium forselecting advertisements that makes use of how the attention of a useris directed on the web page.

SUMMARY OF THE INVENTION

In one aspect of the disclosure, there is provided a method for placingan advertisement into a web page comprising a plurality of contentelements. The method comprises determining a plurality of candidateadvertisements, retrieving attention data in respect of the contentelements of the web page, using the attention data to select anadvertisement from the candidate advertisements, and placing theselected advertisement into the web page.

In one aspect of the disclosure, there is provided an ad server forplacing advertisements into a web page. The ad server comprises an addata store that stores a plurality of ads, and an ad server processingmodule. The ad server processing module is configured to receive an adrequest in respect of a URL, determine a set of candidate advertisementsfrom the ad store, retrieve ad performance statistics from the ad datastore for the candidate advertisements, and select an advertisement forthe ad request using the ad performance statistics. The ad performancestatistics comprise a plurality of attention events, each attentionevent indicating an element of a web page corresponding to the URL as asource element and a candidate advertisement as a destination element.

In one aspect of the disclosure, there is provided a computer-readablemedium comprising computer-executable instructions for execution by aprocessor, that, when executed, cause the processor to receive anadvertisement placement request in respect of a URL, determine adocument object model of a web page corresponding to the URL, determinea plurality of document object model elements of the URL, retrieve anattention ranking of the document object model elements, determine aplurality of candidate advertisements, determine a relevance score foreach candidate advertisement, and select an advertisement from theplurality of candidate advertisements dependent on the relevance scores.Determining the relevance score comprises determining a content matchingfactor dependent on a match of the content of the advertisement to thecontent of a document object model element, and weighting the contentmatching factor dependent on the rank of the respective document objectmodel element.

BRIEF DESCRIPTION OF THE DRAWINGS

Reference will now be made, by way of example only, to specificembodiments and to the accompanying drawings in which:

FIG. 1 illustrates an ad placement system;

FIG. 2 illustrates a method for placing advertisements into a web page;

FIG. 3 illustrates a system for determining attention areas for a webpage interaction;

FIG. 4 illustrates an example of an event header message;

FIG. 5 illustrates an example of an event stream message;

FIG. 6 illustrates an operation of a layout module;

FIG. 7 illustrates an operation of an attention analysis module;

FIG. 8 illustrates an operation of a content interest processing module;

FIG. 9 illustrates a web page portion with mouse move events;

FIG. 10 illustrates a table of event data from the mouse move events ofFIG. 9;

FIG. 11 illustrates a table of attention event data from the mouse moveevents of FIG. 9;

FIG. 12 illustrates a process for selecting an ad using attention data;

FIG. 13 illustrates a process for updating ad performance statistics;

FIG. 14 illustrates a processor and memory of an ad server;

FIG. 15 illustrates an instruction set that may be executed on theprocessor and memory of FIG. 14; and

FIG. 16 illustrates the processor and memory of FIG. 14 in associationwith a processor and memory of an event server.

DETAILED DESCRIPTION OF THE INVENTION

A system in accordance with an embodiment of the disclosure is depictedin FIG. 1. In the system 110, a client 18 provides web page requests 13to a web server 14, in response to which, the web server 14 providespage content 11 for display in a browser 15 of the client 18. Typically,the web page 11 will include visible content 27 as well as javascriptapplications.

In typical webpage protocols, a document object model (DOM) of a webpagestructure may include a document, a body and several elements, includingelements embedded within each other. Events, in particular usertriggered events such as mouse movements, mouse clicks or keyboardevents may be generated at various locations on the page. Applicationcode, e.g. javascript applications, running in the webpage environmentmay register event handlers on various web page objects. The eventhandlers may handle events in a variety of ways. A first event handlingmethod is referred to as event capturing. Event capturing provides anevent first to the top most object in the web page hierarchicalstructure, i.e. DOM, and onward in a descending fashion as follows:

DOCUMENT→BODY→ELEMENT A→ELEMENT B

Event bubbling provides an event first to the bottom most object andonward in an ascending fashion as follows:

ELEMENT B→ELEMENT A→BODY→DOCUMENT

The page content 11 may include an ad request URL as a resource. Whenthe client browser 15 loads the web page 11, an additional request 115is placed to an ad server processing module 117 of an ad server 112identified in the ad request URL for dynamic ad content. The ad server112 accesses an ad data store 128 and provides ad content 116 to beincorporated into the page content.

In accordance with an embodiment of the disclosure, the placement of thead may be performed contextually by reference to a content interest datastore 138 of the ad server 112. The content interest data store storesanalyzed attention data. Using the content interest data store, adcontent can be selected to match areas of a web page that receive a highamount of user attention. Note that the “areas of a web page” may berestricted as a first step to the web page elements currently in theviewport. The effect of this would be to ignore a most highly attentiveweb page element (based on aggregate attention data within the datastore from many interactions) if that element were no longer in theviewport (in this real time interaction).

A method for placing an ad is illustrated in the flowchart 100 of FIG.2. At step 101, a plurality of candidate advertisements is determined.At step 102, attention data is retrieved for the content elements of theweb page from the content interest data store 138. The attention data isused to select one of the candidate advertisements 103 and the selectedadvertisement 116 is provided into the web page at step 104. In oneembodiment, attention data, as will be described in greater detailbelow, is used to find the DOM element(s) of interest and then a secondstep is used to select the ad. The second level step may be eitherperformance based or content based.

The attention data for the content interest data store 138 may bederived using a system 10 as shown in FIG. 3 and as described in theApplicant's co-pending application Attorney Docket No. Hauser 009, theentire contents of which are explicitly incorporated herein byreference. In this system 10, the web server 14 is modified such thatthe web page content 11 provided to the client 18 includes an eventobserver module 26 and layout module 24, both of which may be providedas appropriate code or scripts that run in the background of theclient's browser 15. In one embodiment, code for providing the eventobserver module 26 and the layout module 24 is provided to the webserver 14 by a third party service, such as provided from an eventserver 12, described in greater detail below.

The event observer module 26 and the layout module 24 may be provided ascode embedded in a web page 11 from the web server 14. Alternatively orin addition, the event observer module 26 and the layout module 24 maybe provided as a link back to the web server 14 or a third party server,e.g. event server 12, for the resource containing the code which the webbrowser will fetch as part of loading the web page.

The event observer module 26 observes events generated in a userinteraction with the web page 11 at the client 18. The event observermodule 26 records events generated within the web browser 15, such asmouse clicks, mouse moves, text entries etc., and generates eventstreams 21 including an event header message 22 and one or more eventstream messages 23. It will be apparent to a person skilled in the artthat terms used to describe mouse movements are to be considered broadlyand to encompass all such cursor manipulation devices and will include aplug-in mouse, on board mouse, touch pad, pixel pen, etc.

The event observer module 26 provides the event streams 21 to the eventserver 12. The event server 12 may be as described in the Applicant'scopending application Attorney Docket No. Hauser008, the entire contentsof which are explicitly incorporated herein by reference, and includesan event module 25, an attention analysis module 39, and a suitable datastore 28, which though shown in FIG. 3 within the event server 12, mayalso be provided as an offsite data store. The event server 12 alsoincludes a service provider module 17 which interfaces with a processingmodule 19 of the web server 14. In embodiments of the presentdisclosure, the event server 12 may also include a content interestanalysis module 38.

An example of an event header message 30 is illustrated in FIG. 4 and anexample of an event stream message 40 is illustrated in FIG. 5. Themessages 30, 40 show a number of components that can be included, thoughin various embodiments, not all of these components may be required andadditional components may be added. Primarily, an Interaction_ID 32, 42uniquely identifies an interaction between the client 18 and the webserver 14 and aids to identify the particular event stream 21. The eventheader message 30 and the event stream message 40 may also identify theUniform Resource Locator (URL) 31, 41. Fixed parameters such as theoperating system 33 and browser type 34 may form part of the eventheader message 30. Screen parameters 36, 46 such as the screen size,depth and orientation may be included in either or both of the eventheader message 30 or the event stream message 40. A capture event stream43 and a bubble event stream 44 specifies the events recorded inrespective event capture and bubbling phases during the web pageinteraction. Each event may be indicated by the event type, time and x/ylocation relative to the viewport. Not all web browser types supportevent capture, and thus the capture event stream 43 may be empty. Whererequired, events missing from the event bubble stream may be inferred,for example as described in the Applicant's co-pending applicationAttorney Docket No. HAUSER002, the entire contents of which areexplicitly incorporated herein by reference. An event_count field 45 mayindicate the total number of unique events observed by the eventobserver module including those events not included in the event streammessage 40 due to a current event sampling function excluding them.Timing parameters 48 may indicate the relevant period over which theevent stream message 40 is current.

The event observer module 26 passes the event streams 21 to the eventmodule 25 of the event server 12. In the embodiment illustrated in FIG.3, the event streams 21 are provided directly to the event module 25.However, the event streams 21 may also be provided indirectly, e.g. viathe web server 14.

The layout module 24 processes the web page content on the clientbrowser 15 and augments the event stream messages 21 with viewport andDOM element layout information. Additional fields of the event streammessages 40 shown in FIG. 5 include a viewport location 81, DOM elementlocation changes 82 and DOM structure changes 83. The DOM elementlocation changes 82 and DOM structure changes 83 may be reported inabsolute terms, or may be reported as changes in these parameters sincethe last report. The viewport location 81 may include a time intervalover which the viewport location information can be considered valid.

During an interaction with the web page 11, a user navigates the webpage 11 and may enter content where appropriate, such as in the HTMLform elements. During this interaction events are generated and recordedby the event observer module 26. Events may include mouse clicks, mousemoves, key strokes etc. Periodically, the event observer module 26formulates an event stream message 23, at which time, the event observermodule provides a callback to the layout module 24 for layout data to beincluded in the event stream message.

A process 200 performed by the layout module 24 in response to thecallback is shown in FIG. 6. The layout module 24 receives the eventobserver module callback at step 201 and proceeds to compare a currentDOM structure of the web page 11 with the last reported DOM structure202. The layout module 24 may register itself to watch DOM changes ormay simply enumerate the structure as needed. If changes are observed,then a DOM structure summary is provided to the event observer module 26to be added to the event stream message 23 (step 203). At step 204, theDOM element layout size is compared to the last reported layout size foreach DOM element. New elements and any changes of the DOM element layoutsizes are communicated 205 to the event observer module 26 for inclusionin the event stream message 23. The DOM element layout size can becomputed using element properties “offset left” and “offset top” as isknown. Alternatively, the events generated by the user, e.g. mousemoveetc., can be correlated to the first element to see the event in theevent bubbling phase. Since the events have x,y coordinate positions,the action of moving the mouse across a DOM element rendered in theviewport window will allow local recording of the size and location ofthe respective DOM element. At step 206, the viewport location historyis communicated to the event observer module 26 for inclusion in theevent stream message 23, after which the event stream message 23 may becommunicated to the event server 12.

The event server 12 receives the event stream 21 including the augmentedevent stream messages 23 and processes the event streams in the eventmodule 25. Events may be extracted from the event stream messages 23together with the viewport data and communicated to the attentionanalysis module 39 for additional processing. If the event stream 21includes a new InteractionID, data storage may be allocated in the datastore and an initial DOM structure and element layout information may berecorded. When additional event stream messages are received, anyupdates to the viewport location, DOM structure and DOM element layoutare also stored.

An operation 300 of the attention analysis module is shown in FIG. 7. Atstep 301, the attention analysis module 39 receives an analysis trigger,which might be a request, or a timeout. The attention analysis modulethen analyzes the location of the events in the event stream messagesrelative to the DOM element location in the viewport in order to computea probabilistic locus of attention for the user (step 302). In oneembodiment, the attention analysis module 39 computes the locus ofattention from a plurality of mouse move events as these events canprovide a fine grained indication of the user's focus in between mouseclicks. The locus of attention may be computed and stored as the userattention time per DOM element. In addition, the attention analysismodule 39 may compute attention events (step 303) such as hints,lingers, hovers, partial clicks, cancelled clicks, “on element exits”etc, any of which may assist in determining to where a user's attentionis directed. For example, a mousedown event followed by a mousemove maynot register as a complete mouseclick, in particular if the mouseupevent occurs off of a particular web page element. However, themousedown, mousemove and mouseup events together may indicate a regionof the user's interest or attention focus. In a further example, a mousemove followed by a brief period of time before the next mouse move mayindicate a hover over a region of interest to the user.

The attention time and any attention events may be computed for any DOMelement or for DOM elements that have a particular identifier attributewithin the page. This allows a web page designer to specify contentareas for which to monitor user interest.

Once the attention analysis has been performed, an attention data setcomprising the results of the attention analysis and the event stream orinteraction data may be stored in the data store 28. A statisticalanalysis of the attention data set may be performed by the contentinterest analysis module 38. By making use of the event data and theattention analysis data in the attention data set, aggregate measuresmay be formed over multiple URL visits from multiple users to determinea ranking of the content areas of a web page.

An example of the statistical analysis is depicted in the flowchart 400of FIG. 8. Content interest analysis may be triggered at step 401 by aperiodic timeout, an accumulation of unanalyzed data, a change in DOMstructure, receipt of a request, or by any other suitable trigger.Content interest analysis is performed in respect of a URL, so at step402, the data store 28 is queried for recent attention analysis data inrespect of a particular URL. Any particular web page may be providedwith different versions. Different samples of the web page may thereforeinclude differing DOM elements. A query list of all DOM elements for allsamples of the URL is constructed at step 403. A first DOM element isselected at step 404 and a first interaction is selected from the querylist at step 405. If the DOM element is determined to be in theinteraction at step 406, then the amount of time in the DOM elementviewport relative to the total viewport time is determined at step 407.Total viewport time data may be determined from time stamp information48 in the event stream messages 40 (FIG. 5). Event timing for individualelements within the viewport can be determined from the capture eventstreams 43 and bubble event streams 44.

The time in viewport may be computed dynamically or may have beencomputed at an earlier stage, e.g. during attention analysis describedabove and stored locally. The time in viewport may consider only theactive time, that is the time where a certain event rate is maintainedrather than the viewport remaining idle.

At step 408, the ratio of attention time and/or attention eventsattributed to this DOM element relative to the total attention timeand/or attention events is computed. Attention events may be thoseevents in the attention analysis data analyzed from the event streamsuch as hints, lingers, hovers, partial clicks, cancelled clicks and/or“on element” exits.

Once the viewport time ratio and the attention event ratios have beencalculated for a particular DOM element in a particular interaction,then the process may be repeated for other interactions. If moreinteractions for the currently selected DOM element exist, as determinedat step 409, then a next interaction is chosen by returning to step 405.Once all interactions in the query set have been analyzed with respectto the currently selected DOM element, then a next DOM element isselected from the query list, if available (query step 410), byreturning to step 404 and the interactions for the newly selected DOMelement are analyzed following the steps described above.

After all DOM elements for the URL have been analyzed, a ranked list ofDOM elements can be calculated from the sum of the viewport time ratiosand the attention event ratios (step 411). The ranked list(s) may bestored locally and/or provided to the content interest data store 138 ofan ad server 112 to be stored 412 for later processing as will bedescribed below.

While the flowchart 400 of FIG. 8 depicts one form of statisticalanalysis, other forms of statistical analysis that process the eventstream data to determine the popularity of content areas of the webpagewill be apparent to a person skilled in the art.

As described in the Applicant's copending application Attorney DocketNo. Hauser008, referenced above, only some of the DOM elements, i.e.particular DOM elements of interest, may undergo attention analysis. Inthe present disclosure, the content interest analysis module 38 mayperform its processing on a subset of DOM elements stored in the datastore 28. When processing is performed on a subset, only the directlycorrelated data may be used, that is, the data in the event stream andattention analysis stream that is recorded in respect of a DOM elementwithin the subset. Alternatively, the content interest analysis module38 may process data to DOM elements not in the subset in order to assignthe event stream events and attention events to DOM elements in thesubset.

Within the system, DOM elements may be identified in a number of ways.Typically, DOM elements must be identifiable within the layout module24, content interest analysis module 38 and the content interestprocessing module 19. DOM element identification is consistent acrossthese components. In one embodiment, the DOM element is identified by abare identification attribute on the DOM element/page element, by anidentifier based on the DOM structure and its location within thatstructure, or by the element's pageport location (the pageport is anartificial viewport that is exactly large enough to contain all renderedpage elements).

In an alternative embodiment, a DOM element identifier may by combinedwith a hash of the content of the element, a locality sensitive hash(LSH) code of the content of the element, a one-way (cryptographic) hashof the content of the element and/or the actual content of the element.In these embodiments, the content changing within a DOM element can betreated with different interest analysis. If an LSH code is used, suchas Nilsimsa digest or similar, it is built using the content of the DOMelement (e.g. the text that is displayed) but may optionally be built toinclude attributes from HTML and/or CSS where those attributes affectthe display of the DOM element content. The result is that DOM elementswith nearly equivalent content have nearly equivalent LSH codes in theirDOM element identifiers. This allows two DOM elements, from differentinteractions, to be considered the same for analysis if they havesufficiently similar LSH codes. The disadvantage of including morecontent within the DOM element identifier is that it requires morebandwidth and storage, but has the advantage of allowing greateranalysis and security. The DOM element content may be communicated tothe event server 12 in the event streams, or, more likely, may becommunicated from the web server 14 in response to a content updaterequest from the event server 12.

A magnified sample of an illustrative web page 90 is shown in FIG. 9. Inthe example, the web page 90 includes a body 91, a div element 92 with“Some Div Text” as its content, a span element 93 with “Some Span Text”as its content and a link element 94 featuring a link as its content. Invarious embodiments, the link element 94 may be an ad link selected andplaced in a manner according to the present disclosure. Therepresentative text is shown in a ghosted font to indicate that theactual content of the web page is relatively unimportant. The importantaspects of the page are the page structure, the DOM elements and wherethe events occur with respect to the DOM elements.

In the example, a mouse path 96 registers mouse move events e1 . . .e14. In the events shown, the mouse tracked steadily across the top ofthe “So” in the rendered <div> text “Some Div Text” (e1-e4) and thentracked swiftly down through the word “Some”. The mouse then movedslowly (e6-e9) and then tracked upwards to resume a steady pace alongthe top of the rendered <div> element (e9-14).

A table representing the mouse move events is shown in FIG. 10. Forexample, the table 110 of FIG. 10 shows that event e1 occurred at time=0and at location x=100, y=100 which, as indicated in the table 110,occurs in the <div> element 92. The event type was recorded as a mousemove event. For the path 96 of FIG. 9, table 110 of FIG. 10 indicatesthat the events e4, e12 were received first in the event bubbling phaseby the <body> element event handlers and e7 was received by the <span>event handlers. That is, in this mouse path 96, the mouse moved off ofthe <div> element three times, twice above the rendered <div> text andonto the <body> element (e4, e12) and once below the <div> element ontothe <span> element (e7).

FIG. 11 shows corresponding attention analysis data 120 for thetabulated event 110 data of FIG. 10. The attention analysis concludesthat events e1-e14 corresponding to time=0 to time=70 constitute a“linger” attention event “a1” and that the attention was focused 100% onthe <div> element of the DOM. Also, the downward gesture correspondingto events e4-e10 may be analyzed as a “hint” which has a probabilisticassessment of being a hint of the attention shifting to the <span>element, with a 20% probability, and a hint to the <a id=“link1”>element 94 with a probability of 80%. This example thus shows that asingle stream of user events may be analyzed to contain multipleattention events. The attention analysis data 120 may be stored in thedata store with the associated event stream provided by table 110. Thisexample serves to illustrate two additional points. Events may notindicate attention on or for the DOM element on which the events arereceived e.g. the e4, e7, and e12 events are analyzed to indicate the<div> is receiving 100% of the “linger” attention event. Attention maybe analyzed to be more relevant to DOM elements that are farther awayfrom the DOM element(s) receiving the events e.g. attention event a2receives (derives from) events that arrived on the <div> element but the“hint” was analyzed as being 80% likely relevant to the <a id=“link1”>element which is further away than the <span> element which receivedonly a 20% likelihood of being the target of this “hint” attentionevent. “Farther away” here means primarily the measure of the DOMelements as rendered in the viewport (viewport rendering location) butcould also be approximated using the distance measure of the DOMelements within the structure of the DOM itself (DOM structurelocation). For the analysis to choose a “farther away” DOM element asthe attention event target over a closer DOM element several factors maybe considered. The rate of the underlying mouse movement during theevents e4-e10 may contribute as may other factors such as the type of apossible target DOM element, if the DOM element is changing (scrolling,animated, video), is the style/color/font different from the source orintervening DOM elements, etc.

The attention analysis demonstrated in FIGS. 9 to 11 describes theanalysis performed in respect of a single interaction. By repeating theprocess across many interactions from many clients for a single URL,aggregate data describing average areas of attention may bestatistically determined.

The above described embodiments demonstrate a content interest analysisbeing performed in a distinct event server 12. In an alternativeembodiment, any of the event module 25, attention analysis module 39 andcontent interest analysis module 38 may be provided as components of theweb server 14, such that all processing of the event streams, includingdetermining the aggregated areas of interest may be performed within theweb server 14.

The event data provides fine grained attention tracking which is hard tofalsify by automated means. By performing a statistical analysis of theevent data across multiple interactions the most popular areas of a webpage that attract the attention may be determined. Such information maybe used in many content placement applications.

The ad server system 110 of FIG. 1 may use the attention analysis datato select an ad for placement into a web page. A process for placing anad is depicted in the flowchart 500 of FIG. 12. At step 501, the adserver processing module 117 of the ad server 112 receives an ad request115 from which the URL is decoded 502. At step 503, the ad data store128 is queried for candidate ads. Ad candidates may be excluded fromselection for a variety of reasons including that the advertiser'saccount balance is low, the size of the ad does not fit within thetarget element, etc. At step 504, the content interest data store 138 isqueried for the attention analysis data in respect of the URL includinga ranking of the elements of the page content corresponding to the URL.At step 505, a decision procedure is used to select an ad from thecandidate ads and the ad 116 is provided to the web server 14 or client15 at step 506. The decision procedure step 505 uses the attentionanalysis data to select the most relevant ad for placement into the webpage loaded at the client. The relevance of an ad is determined withrespect to the content of the more highly ranked elements of the webpage.

The decision procedure may select an ad by assigning each candidateadvertisement with a relevance score. In one embodiment, the relevancescore may be calculated by matching the content of the advertisement tothe content of the ranked web page elements. The decision procedure maymatch ads to the most highly ranked element only. For example, arelevance score may be determined for each candidate ad with therelevance score depending only on the content of the ad with respect tothe content of the highest ranked element. This embodiment may beconsidered to have a binary weighting, in which the highest rankedelement has a weighting value of 1, and all other elements have aweighting value of zero.

In an alternative embodiment, a relevance score may be determined foreach candidate ad with the relevance score including a weighting for thedegree to which the ad matches the content of the different web pageelements. In this embodiment, ads that have low relevance to the topranked element but high relevance to the page content corresponding tothe URL as a whole may still be selected in preference to an ad whichhas relevance to only the top ranked element of the page contentcorresponding to the URL.

The decision procedure may make use of ad statistics including theperformance of an ad. In prior art applications, performance istypically measured by click data. However, using the attention analysismethods described above, ad performance data can be measured even whenan ad is not selected by a user. Ad statistics can be updated wheneveran attention event indicates an attention shift to an ad element. Forthe example shown in FIGS. 9 to 11, the link 94 may be an ad link andthe attention event a2 is analyzed as an attention hint with the ad linkbeing the destination of the user's attention shift. Thus, the attentionanalysis data indicates that the link has been successful in attractingthe user's attention, even though the link was not actually selected.The ad statistics may be updated to record the attention event “a2”shown in FIG. 11. When updating the ad statistics for the ad link 94,the source element is also identified. The source element is the elementfrom which the user attention shifted toward the ad. In the example ofFIGS. 9 to 11, the source element is the <div> element 92. The mostsuccessful placed ads will be the ads that are relevant to the contentchunks that most interest users. The most preferred pattern of behavioris an attention shift from a content chunk of high user interest as thesource with the ad as the destination, even if the ad is not alwaysselected. Thus, if an ad repeatedly delivered in a page gets attentionbut the source element is not within the top ranked content, then the admay receive a low relevance score.

A process for collating ad statistics is illustrated in the flowchart600 of FIG. 13. At step 601, an ad statistic update is triggered, forexample by a timeout, receipt of event stream data to the event server12, an ad server request, a user activated trigger, etc. At step 602,the attention data store 28 is queried for event stream data andattention analysis data in respect of a particular URL and a particularad. For example, the attention data may indicate time of the ad elementin the viewport, a hint, linger, hover, read-over, partial click orselect (i.e. click out) in respect of the ad element. If attention datais available for the ad in the URL, then ad statistics may be recordedor updated 603. In particular, ad statistics may include the sourceelement and the relevance of the ad to the content of the sourceelement.

The ad statistics can be used by the decision procedure (step 505, FIG.12) when selecting an ad from the candidate ads. For example, an ad thathas a history of attracting user attention from the highest rankedelements of the page content corresponding to the URL may be selected inpreference to other candidate ads which may rate more highly on otherfactors, such as keyword relevance to the page content corresponding tothe URL as a whole.

In one embodiment, the decision procedure may rely solely on the adstatistics without making use of any content matching. In an alternativeembodiment, the decision procedure may combine multiple factors toproduce a single relevance score for each candidate advertisement. Forexample, content matching of the ad to the highest ranked elements maybe combined with ad performance statistics for that ad and that webpage. Each of these factors may be assigned a weighting when combinedinto a relevance score. That is, the weighting may favor ads that havehistorically produced attention events when placed within the particularweb page so that these ads will generate a higher relevance score duringthe decision procedure.

Once the relevance scores have been determined for the candidate ads,the most relevant ad may be selected and placed within the web page.

While the above described embodiments make specific reference to rankingthe DOM elements of page content corresponding to a URL for their usercontent interest, the ranking may be performed in respect of otherelements and divisions of a web page.

An advantage of the presently described embodiments for contextualplacement of dynamic content includes that the contextual placement isdetermined not on the page content corresponding to the URL as a whole,but on those portions of the page content corresponding to the URL thatare most popular. For example, a keyword may appear multiple times in alowly ranked element of a document and would therefore be highly rankedfor ad placements on prior art contextual placement arrangements.However, an ad that matches this keyword may be unlikely to be selectedby the user because the user's attention is not directed to the lowlyranked elements in which the keyword appears. Keywords appearing fewertimes in the whole page content corresponding to the URL but appearingin the more highly ranked elements are more likely to be selected andthus by placing ads dependent on the content interest areas of a webpage, greater ad effectiveness can be achieved.

While the illustrated embodiments depict the ad server 112 and the eventserver 12 as separate entities, they may be incorporated into a singleentity with the content interest data store 138 of the ad server 112being incorporated within the data store 28 of the event server. In analternative embodiment, the content interest data store 138 may beincorporated within the data store 28 of the event server 12 with the adserver processing module 117 accessing the data store 28 when attentiondata is required.

The ad server 112 may be embodied in hardware, software, firmware or acombination of hardware, software and/or firmware. In a hardwareembodiment, the ad server 112 may be provided in a device, such asserver hardware, computer, etc including a processor 61 operativelyassociated with a memory 62 as shown in FIG. 14. The memory 62 may storeinstructions that are executable on the processor 61. In addition, thememory 62 may provide elements of the ad data store 128 and/or attentiondata store 138. An instruction set 700 that may be executed on the eventserver processor 61 is depicted in the flowchart of FIG. 15.Specifically, when executed, the instruction set 700 allows theprocessor to receive an advertisement placement request in respect of aURL at step 701. At step 702, a document object model of a web pagecorresponding to the URL is determined and a plurality of documentobject model elements of the URL are determined at step 703. At step704, the processor retrieves an attention ranking of the document objectmodel elements. The processor determines candidate advertisements atstep 705 and determines a relevance score for each candidateadvertisement 706 before selecting an advertisement from the pluralityof candidate advertisements dependent on the relevance scores 707. Therelevance score may be determined by calculating a content matchingfactor dependent on a match of the content of the advertisement to thecontent of a document object model element. The content matching factormay then be weighted based on the rank of the respective document objectmodel element.

The document object model structure including the document object modelelements may be retrieved by looking up information for the URL storedin memory 62 or by retrieving the information from associated or offsiteresources such as the event server 12. The ad server processor 61 maycommunicate with a processor 71 of the event server, as shown in FIG.16, through a suitable communications link 65. The DOM structure andcontent interest data including the ranked DOM element list may bestored in the memory 72 of the event server and communicated to the adserver processor 61 through the link 65.

The person skilled in the art will readily understand that the sequenceof steps shown in the Figures and is provided for illustrative purposesonly and that the order of steps is not essential. Furthermore, theperson skilled in the art will recognize that a greater or lesser numberof steps may be performed without departing from the scope of thedisclosure.

Although embodiments of the present invention have been illustrated inthe accompanied drawings and described in the foregoing description, itwill be understood that the invention is not limited to the embodimentsdisclosed, but is capable of numerous rearrangements, modifications, andsubstitutions without departing from the spirit of the invention as setforth and defined by the following claims. For example, the capabilitiesof the invention can be performed fully and/or partially by one or moreof the blocks, modules, processors or memories. Also, these capabilitiesmay be performed in the current manner or in a distributed manner andon, or via, any device able to provide and/or receive information.Further, although depicted in a particular manner, various modules orblocks may be repositioned without departing from the scope of thecurrent invention. Still further, although depicted in a particularmanner, a greater or lesser number of modules and connections can beutilized with the present invention in order to accomplish the presentinvention, to provide additional known features to the presentinvention, and/or to make the present invention more efficient. Also,the information sent between various modules can be sent between themodules via at least one of a data network, the Internet, an InternetProtocol network, a wireless source, and a wired source and viaplurality of protocols.

1. A method for placing an advertisement into a web page comprising aplurality of content elements, the method comprising: determining aplurality of candidate advertisements; retrieving attention data inrespect of the content elements of the web page; using the attentiondata to select an advertisement from the candidate advertisements; andplacing the selected advertisement into the web page.
 2. The methodaccording to claim 1 wherein the attention data comprises a rank of theplurality of content elements, wherein the rank is dependent on therelative attention received by the respective content elements for aplurality of interactions between a plurality of clients and the webpage.
 3. The method according to claim 2 comprising: determining arelevance score for at least one candidate advertisement, the relevancescore being dependent on the relevance of the content of the at leastone candidate advertisement to the ranked plurality of content elements;and selecting an advertisement dependent on the relevance scores for theplurality of candidate advertisements.
 4. The method according to claim3 wherein the relevance score is dependent on the relevance of thecontent of the candidate advertisement to the highest ranked contentelement.
 5. The method according to claim 2 comprising deriving theattention data, wherein deriving the attention data comprises: recordingevent data for a plurality of user interactions with the web page;processing the event data for at least one interaction to create anattention data set for that interaction; and processing a plurality ofthe attention data sets to determine the attention data for the webpage.
 6. The method according to claim 5 wherein processing a pluralityof the attention data sets comprises: selecting a content element;selecting an attention data set; and determining a ratio of interactiontime attributable to the selected content element relative to the totalinteraction time of the selected attention data set; wherein theattention data comprises a list of content elements for the web pageranked at least partially dependent on said ratio.
 7. The methodaccording to claim 5 wherein processing the event data comprisesdetermining at least one attention event in respect of at least onecontent element, and wherein processing a plurality of the attentiondata sets comprises: selecting a content element; selecting an attentiondata set; and determining a ratio of attention events attributable tothe selected content element relative to the total interaction time ofthe selected attention data set; wherein the attention data comprises alist of content elements for the web page ranked at least partiallydependent on said ratio.
 8. The method according to claim 5 wherein thecontent elements comprise document object model elements of a documentobject model of the web page.
 9. The method according to claim 5 whereinthe event data comprises a plurality of mouse move events.
 10. Themethod according to claim 1 wherein the attention data comprises aplurality of recorded attention events; wherein at least one attentionevent is derived from an interaction between a user and the web pagecomprising an embedded candidate advertisement within the web page; andwherein the at least one attention event indicates a shift in userattention from a source element of the web page to the embeddedcandidate advertisement.
 11. The method according to claim 10 comprisingdetermining a relevance score for at least one candidate advertisementdependent on the attention events for the respective candidateadvertisement.
 12. The method according to claim 11 wherein determininga relevance score for a candidate advertisement comprises: determining aset of attention events for the web page, the set of attention eventscomprising the candidate advertisement as a destination element; foreach attention event of the set, determining the web page source elementof the attention event; and determining the relevance score dependent onthe source elements of the attention events.
 13. The method according 12wherein the attention data comprises an attention rank of the sourceelements and wherein the relevance score is dependent on the attentionrank.
 14. The method according to claim 13 wherein selecting anadvertisement comprises selecting an advertisement for which theattention data comprises at least one attention event comprising ahighest ranked element as the source element and the selected candidateadvertisement as the destination element.
 15. The method according toclaim 10 comprising: recording event stream data from the interaction;and processing the event stream data to derive one or more of theattention events; wherein the event stream data comprises a plurality ofmouse move events.
 16. An ad server for placing advertisements into aweb page, the ad server comprising: an ad data store that stores aplurality of ads; and an ad server processing module configured to:receive an ad request in respect of a URL; determine a set of candidateadvertisements from the ad store; retrieve ad performance statisticsfrom the ad data store for the candidate advertisements; and select anadvertisement for the ad request using the ad performance statistics;wherein the ad performance statistics comprise a plurality of attentionevents, each attention event indicating an element of a web pagecorresponding to the URL as a source element and a candidateadvertisement as a destination element.
 17. The ad server according toclaim 16 further comprising: a content interest data store that stores alist of document object elements of the web page, wherein the list isranked dependent on the user interest attributable to the respectivedocument object model elements for a plurality of interactions between aplurality of users and the web page; wherein the ad server processingmodule is configured to select an ad dependent on the ranks of sourcedocument object model elements of the respective attention events forthe candidate ad.
 18. The ad server according to claim 17 wherein the adserver processing module is configured to select an ad for which the adperformance statistics comprise at least one attention event comprisinga highest ranked document object model as a source element and theselected ad as a destination element.
 19. A computer-readable mediumcomprising computer-executable instructions for execution by aprocessor, that, when executed, cause the processor to: receive anadvertisement placement request in respect of a URL; determine adocument object model of a web page corresponding to the URL; determinea plurality of document object model elements of the URL; retrieve anattention ranking of the document object model elements; determine aplurality of candidate advertisements; determine a relevance score foreach candidate advertisement; select an advertisement from the pluralityof candidate advertisements dependent on the relevance scores; whereindetermining the relevance score comprises: determining a contentmatching factor dependent on a match of the content of the advertisementto the content of a document object model element; and weighting thecontent matching factor dependent on the rank of the respective documentobject model element.
 20. The computer-readable according to claim 19wherein determining the relevance score comprises: determining a set ofattention events for the web page that comprise the respective candidateadvertisement as a destination element; for each attention event of theset, determining the document object model element that is a source ofthe attention event; and weighting the relevance score dependent on therank of the source element of the attention events.